package com.heqiang.service;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.heqiang.dao.RoleDao;
import com.heqiang.entity.manager.Admin;
import com.heqiang.entity.manager.Role;
import com.heqiang.tools.DataTableParam;
import com.heqiang.tools.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import java.util.List;

@Service
public class RoleService {

    @Autowired
    private RoleDao dao;

    /*********************************************************  QUERY  ****************************************************/
    /**
     * 分页查询-角色列表
     * @Author zhang heqiang
     * @Date 2020/5/17
     * @param role
     * @param dataTableParam
     * @return com.heqiang.tools.Page<com.heqiang.entity.manager.Role>
     **/
    public Page<Role> search(Role role, DataTableParam dataTableParam) {
        PageHelper.startPage(dataTableParam.getPageNo(), dataTableParam.getLength());
        List<Role> list = dao.search(role);
        return getPages(list);
    }

    /**
     * 获取单个角色信息
     * @Author zhang heqiang
     * @Date 2020/5/17
     * @param id
     * @return com.heqiang.entity.manager.Role
     **/
    public Role get(String id) {
        return dao.get(id);
    }

    /**
     * 查询全部
     * @Author zhang heqiang
     * @Date 2020/5/17
     * @param
     * @return java.util.List<com.heqiang.entity.manager.Role>
     **/
    public List<Role> findAll() {
        List<Role> list = dao.findAll();
        return list;
    }

    /**
     * 删除-根据id
     * @Author zhang heqiang
     * @Date 2020/5/17
     * @param id
     * @return void
     **/
    public void del(Long id) {
        dao.del(id);
    }

    /********************************************************* PRIVATE ****************************************************/
    /**
     * 获取分页信息
     * @Author zhang heqiang
     * @Date 2020/5/17
     * @param list
     * @return com.heqiang.tools.Page<com.heqiang.entity.manager.Role>
     **/
    private Page<Role> getPages(List<Role> list) {
        if (CollectionUtils.isEmpty(list)) {
            return new Page<>();
        }
        //获得与分页相关参数
        PageInfo<Role> pageInfo = new PageInfo<Role>(list);
        Page<Role> pages = new Page<>();
        pages.setList(list);
        Long total = pageInfo.getTotal();
        pages.setTotal(total.intValue());
        pages.setPageNo(pageInfo.getPageNum());
        pages.setPageSize(pageInfo.getPageSize());
        pages.setTotalPage(pageInfo.getPages());
        return pages;
//        System.out.println("当前页数：" + pageInfo.getPageNum());
//        System.out.println("每页条数：" + pageInfo.getPageSize());
//        System.out.println("总条数：" + pageInfo.getTotal());
//        System.out.println("总页数：" + pageInfo.getPages());
//        System.out.println("上一页：" + pageInfo.getPrePage());
//        System.out.println("下一页：" + pageInfo.getNextPage());
//        System.out.println("是否是第一个：" + pageInfo.isIsFirstPage());
//        System.out.println("是否是最后一个：" + pageInfo.isIsLastPage());
    }
}
